# 形参**user_info中的两个星号让python创建一个名为user_info的字典，该字典包含函数收到其他所有名值对
def build_profile(first,last,**user_info):
    """创建一个字典，其中包含我们知道的有关用户的一切"""
    user_info['first_name']=first
    user_info['last_name']=last
    return user_info
user_profile=build_profile('jing','yu',locals='江西',industry='compute',field='python')
print(user_profile)

# 例题8.14：汽车
def car_info(manufacturer,model,**kwargs):
    """创建一个字典，其中包含我们知道的车辆信息"""
    kwargs['manufacturer_name']=manufacturer
    kwargs['model_name']=model
    return kwargs
print()
user_car=car_info('subaru','outback',color='blue',tow_package=True)
print(user_car)

# args 和 kwargs 是约定命名，可替换（如 *numbers 或 **config），但 * 和 ** 符号不可省略
# *args（位置参数）:数据结构为元组（tuple）
# **kwargs（关键字参数）：数据结构为字典（dict）
# 函数定义中的顺序 必须严格遵循：普通参数 → *args → **kwargs